<?php namespace Admin\Controller; 
use Common\Model\Article;
use Common\Model\Category;
use Common\Model\ArcTag;
/**
 * 文章管理控制器
 * Hd
 * 
 */
class ArticleController extends CommonController{
	private $cateModel;
	private $db;
	//构造函数
	public function __init()
	{
		
		$this->db=new Article;
		$this->cateModel=new Category;
//		继承父级的init构造函数
		parent::__init();
	}
	

// 首页列表
	 
	public function index(){
//		获取总条数
		$allNum=$this->db->where('is_recycle',0)->count();
//		row是每一页几条，make传入总共几条
		$page=Page::row(2)->make($allNum);
//		关联，join文章表和分类表,field制定获取的字段,排序sendtime以时间降序，limit分页截取的方法，不在回收站的数据，获取所有
		$data=$this->db->join('category','category_cid','=','cid')->field('aid','title','sendtime','cname')->orderBy('sendtime','DESC')->limit(Page::limit())->where('is_recycle',0)->get();
//		分配page分页累
		View::with('page',$page);
//		------------------------------
//		分配所有数据
		View::with('data',$data);
		View::make();
	}
	
//添加
	public function add(){
		if(IS_POST){
			$result=$this->db->store();
			if(!$result){
				View::error($this->db->getError());
			}else{
				View::success('添加成功');
			}
		}
		
//		添加到哪个分类
		$cateData=$this->cateModel->get();
		$cateData=Data::tree($cateData,'cname');
		View::with('cateData',$cateData);

//		获取标签
//		获取标签表所有数据
		$tagData=Db::table('tag')->get();
		View::with('tagData',$tagData);

		View::make();
	}
	
//修改
	public function edit(){
		if(IS_POST){
			$result=$this->db->edit();
			if(!$result){
				View::error($this->db->getError());
			}else{
				View::success('添加成功');
			}
		}
		
		$aid=Q('get.aid',0,'intval');
//		获取分类
		$cateData=$this->cateModel->get();
		$cateData=Data::tree($cateData,'cname');
		View::with('cateData',$cateData);
		
//		获取标签
//		获取标签表所有数据
		$tagData=Db::table('tag')->get();
		View::with('tagData',$tagData);
		
//		获取原数据
		$oldData=$this->db->join('article_data','aid','=','article_aid')->where('aid',$aid)->find();
		View::with('oldData',$oldData);
			
//		获取文章对应的所有标签信息返回
//		实例化中间表
		$arcTagModel=new ArcTag;
		$tags=$arcTagModel->where('article_aid',$aid)->lists('tag_tid');
		View::with('tags',$tags);
		
		View::make();
	}
		
//	删除到回收站
	public function delToRecycle(){
		$aid=Q('get.aid',0,'intval');

		$result=$this->db->where('aid',$aid)->update(array('is_recycle'=>1));
		if(!$result){
			View::error('删除失败');
		}else{
			View::success('删除到回收站成功');
		}
	}
//回收站
	public function recycle(){
//		分页-----------------------
//		获取总条数
		$allNum=$this->db->where('is_recycle',1)->count();
//		row是每一页几条，make传入总共几条
		$page=Page::row(2)->make($allNum);
//		关联，join文章表和分类表,field制定获取的字段,排序sendtime以时间降序，limit分页截取的方法，不在回收站的数据，获取所有
		$data=$this->db->join('category','category_cid','=','cid')->field('aid','title','sendtime','cname')->orderBy('sendtime','DESC')->limit(Page::limit())->where('is_recycle',1)->get();
//		分配page分页累
		View::with('page',$page);
//		------------------------------
//		分配所有数据
		View::with('data',$data);
		
		View::make();
	}
//	还原
	public function restore(){
		$aid=Q('get.aid',0,'intval');

		$result=$this->db->where('aid',$aid)->update(array('is_recycle'=>0));
		if(!$result){
			View::error('还原失败');
		}else{
			View::success('还原成功');
		}
		
		
		
	}
	
	
//	彻底删除
	
	public function del_cd(){
		$aid=Q('get.aid',0,'intval');
		
		$ar=Db::table('article')->where('aid',$aid)->delete();
		$ar_dt=Db::table('article_data')->where('article_aid',$aid)->delete();
		$ar_tag=Db::table('article_tag')->where('article_aid',$aid)->delete();
		
		if(!$ar&&$ar_dt&&$ar_tag){
			View::error('删除失败');
		}else{
			View::success('彻底删除成功');
		}
		
		
	}

}
















